package org.jeecg.modules.demo.flowable.service;

import liquibase.pro.packaged.I;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.jeecg.modules.demo.flowable.model.ProcessInstanceEntity;
import org.jeecg.modules.demo.flowable.model.TaskInstanceEntity;

import java.util.List;

/**
 * 有关流程方法的封装
 */
public interface IProcessMethods {
    Task checkTaskById(String id);

    /**
     * 发起一个流程方法的封装
     */
    String initiateProcess(String bussinessKey,String assignee);

    /**
     * 取消流程方法
     */
    void cancelProcess(String processInstanceId);

    /**
     * 获取我的执行中任务
     */
    List<Task> getSomeoneOngoingTasks(String assignee);

    /**
     * 获取我已处理任务的封装
     */
    List<HistoricTaskInstance> getSomeoneProcessingCompleted(String assignee);

    /**
     * 获取我的发起流程
     */
    List<HistoricTaskInstance> getSomeoneProcessInitiated(String assignee);

    /**
     * 获取我参与流程
     */
    List<HistoricTaskInstance> getSomeoneParticipateProcess(String assignee);

    /**
     * 完成我的任务
     */
    void completeSomeoneTask(String assignee,String procInstId,String nextZhiwei,String nextAssignee);
    void completeSomeoneTask(String assignee,String procInstId,String nextZhiwei,String nextAssignee,boolean Value);

    /**
     * 集团会计推送的方法
     * @param assignee
     * @param procInstId
     */
    void completeSomeoneTask001(String assignee,String procInstId);
}
